package com.ssy.lingxi.platform.manage.service.content;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.platform.manage.entity.content.MemberAdvert;
import com.ssy.lingxi.platform.manage.model.request.common.CommonIdRequest;
import com.ssy.lingxi.platform.manage.model.request.common.CommonStatusRequest;
import com.ssy.lingxi.platform.manage.model.request.content.MemberAdvertPageRequest;
import com.ssy.lingxi.platform.manage.model.request.content.MemberAdvertQueryRequest;
import com.ssy.lingxi.platform.manage.model.request.content.MemberAdvertRequest;

import java.util.List;

/**
 * 内容能力 - 广告管理
 * @author hsl
 * @version 2.0.0
 * @date 22/03/11 10:49
 */
public interface IMemberAdvertService {
    /**
     * 能力中心-查询广告分页列表
     * @param request 分页查询参数
     * @param sysUser 登录用户
     * @return 广告分页列表
     */
    Wrapper<PageData<MemberAdvert>> page(MemberAdvertPageRequest request, UserLoginCacheDTO sysUser);

    /**
     * 能力中心-查看广告详情
     * @param request 广告id请求传参
     * @return 广告详情
     */
    Wrapper<MemberAdvert> get(CommonIdRequest request);

    /**
     * 能力中心-新增广告
     * @param request 新增广告传参
     * @param sysUser 登录用户
     * @return 操作成功默认信息
     */
    Wrapper<Void> add(MemberAdvertRequest request, UserLoginCacheDTO sysUser);

    /**
     * 能力中心-修改广告
     * @param request 更新广告传参
     * @param sysUser 登录用户
     * @return 操作成功默认信息
     */
    Wrapper<Void> update(MemberAdvertRequest request, UserLoginCacheDTO sysUser);

    /**
     * 能力中心-上下架广告
     * @param request 更新广告状态传参
     * @param sysUser 登录用户
     * @return 操作成功默认信息
     */
    Wrapper<Void> updateStatus(CommonStatusRequest request, UserLoginCacheDTO sysUser);

    /**
     * 能力中心-删除广告
     * @param request 广告id请求传参
     * @param sysUser 登录用户
     * @return 操作成功默认信息
     */
    Wrapper<Void> delete(CommonIdRequest request, UserLoginCacheDTO sysUser);

    /**
     *  商城-获取广告
     * @param request 查询广告传参
     * @return 广告列表
     */
    Wrapper<List<MemberAdvert>> findAllByColumnType(MemberAdvertQueryRequest request);
}
